作者:Jay_5 | 来源:互联网 | 2023-09-15 13:06
篇首语:本文由编程笔记#小编为大家整理,主要介绍了Linux命令之在文件中查找符合指定条件的字符串egrep相关的知识,希望对你有一定的参考价值。
概述
egrep
命令是在文件中查找符合指定匹配模式的字符串。该命令与 grep -E
类似,该命令更多用于查找符合指定正则表达式的字符串。
该命令比 grep
更丰富,如:
grep
不支持 ?
与 +
,但 egrep
支持。grep
不支持 a|b
或 (abc|xyz)
,但 egrep
支持。grep
在处理 n,m
时需要使用 \\
和 \\
进行转义处理,但 egrep
不需要。
注:如果涉及正则表达式的匹配使用 egrep
命令更方便,而非 grep -E
。
语法
该命令的语法如下:
egrep [选项] 指定匹配模式 文件名
该命令支持的选项有:
选项 | 说明 |
---|
-i | 搜索时,忽略大小写 |
-c | 只输出匹配行的数量 |
-l | 只列出符合匹配的文件名,不列出具体的匹配行 |
-n | 列出所有的匹配行,显示行号 |
-h | 查询多文件时不显示文件名 |
-s | 不显示不存在、没有匹配文本的错误信息 |
-v | 显示不包含匹配文本的所有行 |
-w | 匹配整词 |
-x | 匹配整行 |
-r | 递归搜索 |
-q | 禁止输出任何结果,已退出状态表示搜索是否成功 |
-b | 打印匹配行距文件头部的偏移量,以字节为单位 |
-o | 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位 |
注:由于该命令效果与 grep
类似,所以不多做说明,通常使用该命令匹配正则表达式。关于 grep
命令可以参考:Linux命令之查找字符串grep。
使用
匹配正则表达式
测试使用的 test.txt
文件的内容如下:
hello c++
hello world
hello html5
hello css
he11o class
示例 1:
grep "c.+" test.txt
egrep "c.+" test.txt
示例2:
grep "he(ll|11)" test.txt
egrep "he(ll|11)" test.txt
示例3:
grep "hel\\2\\" test.txt
egrep "hel2" test.txt